package main

import (
	"fmt"
)

// 方法1 2 3 可以声明全局变量 方法4 不行
var gA int = 100
var gB = 100

func main() {

	// 方法1  使用默认值
	var a int
	fmt.Println(" a =", a)

	// 方法2 初始化赋值
	var b int = 10
	fmt.Println(" b =", b)

	//方法3 省略后面的数据类型,自动匹配类型
	var c = 20
	fmt.Printf(" type of c %T\n", c)
	fmt.Println(" c =", c)

	//方法4 省略var关键字 自动匹配类型
	d := 3.1415

	fmt.Printf(" type of d %T\n", d)
	fmt.Println(" d =", d)

	//全局变量
	fmt.Println(" gA =", gA, " gB=", gB)

	//声明多个变量

	//相同类型
	var gg, hh int = 100, 200
	fmt.Println(" gg =", gg, " hh=", hh)

	//不同类型
	var xx, yy = 200, "hello"
	fmt.Println(" xx =", xx, " yy=", yy)

	//清晰写法
	var (
		oo int  = 300
		pp bool = true
	)

	fmt.Println(" oo =", oo, " pp=", pp)

}
